package kr.co.mustgo.model.service.noticeboard;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import kr.co.mustgo.domain.noticeboard.NoticeBoard;
import kr.co.mustgo.model.dao.noticeboard.NoticeBoardDAO;
import kr.co.mustgo.util.BoardUtilities;
import kr.co.mustgo.util.PagingBean;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class NoticeBoardServiceImpl implements NoticeBoardService{

	@Autowired
	private NoticeBoardDAO noticeBoardDAO;

	@Override
	public void writeContent(NoticeBoard noticeBoard) {

		noticeBoardDAO.insertContentForNewCount(noticeBoard);

	}
	
	@Override
	public NoticeBoard getContentByCode(int code){
		//1. DAO의 메소드를 이용해 조회수를 1 증가 시킨다.
		noticeBoardDAO.updateViewCount(code);
		//2. DAO의 메소드를 이용해 글 정보 조회
		NoticeBoard notice = noticeBoardDAO.selectContentByCode(code);
		return notice;
	}
	

	@Override
//	페이징 처리 목록 조회 메소드.
//	조회한 게시물들(ArrayList)와 페이징 처리를 위한 PagingBean의 객체를 생성해 Map에 넣어 return 처리한다.
	public Map getNoticeBoardList(int page){
		HashMap map = new HashMap();
//		1. DAO메소드를 이용해 매개변수로 받은 페이지에 보여줄 게시물들을 ArrayList로 조회
		List<NoticeBoard>list = noticeBoardDAO.selectNoticeBoardList(page);
		map.put("list", list);
//		2. PagingBean객체를 생성 ( 필요 정보 : 전체 게시물의 개수, 보고자 하는 페이지 번호)
//		2-1 : DAO의 메소드를 이용해 전체 게시물 수 조회
		int totalContent = noticeBoardDAO.selectTotalContent();
//		2-2 : PagingBean 객체 생성
		PagingBean pagingBean = new PagingBean(totalContent, page);
		map.put("pagingBean", pagingBean);
		return map;
	}

	@Override
	public NoticeBoard getContentByNoForForm(int code) {
		NoticeBoard noticeBoard = noticeBoardDAO.selectContentByCode(code);
		
		return noticeBoard;

	}
	
	@Override
	public void modifyContent(NoticeBoard noticeBoard) {
		
		noticeBoardDAO.updateContent(noticeBoard);
	}

	@Override
	public void deleteContentByCode(int code) {
		noticeBoardDAO.deleteContentByCode(code);
		
	}
	
	

	

}
